#include <iostream>
#include <math.h>
#include <string.h>
using namespace std;



struct item{
	int v,p;
};



int main(){
	int n,m;
	cin>>n>>m;
	item a[m];
	int dp[m+1][n+1];
	memset(dp,0,sizeof(dp));
	for(int i=0;i<m;i++)
		cin>>a[i].v>>a[i].p;
	for(int i=1;i<=m;i++)
		for(int j=0;j<=n;j++)
			dp[i][j] = j-a[i-1].v>=0?max(dp[i-1][j],dp[i-1][j-a[i-1].v]+a[i-1].p*a[i-1].v):dp[i-1][j];
	cout<<dp[m][n];
	return 0;
}
